package com.taotao.service;

import com.mysql.cj.log.Log;
import com.taotao.chain.GatewayHandler;
import com.taotao.chain.factory.FactoryHandler;
import com.taotao.manage.GatewayHandlerManage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: wangjin
 * @CreateTime: 2022-06-26  10:11
 */
@RestController
@Slf4j
public class TestChainService {
    @Autowired
    private GatewayHandlerManage gatewayHandlerManage;

    /*
     *测试责任链
     */
    @RequestMapping("/testChain")
    public String testChain() {
        try {
          /*  GatewayHandler gatewayHandler = FactoryHandler.getGatewayHandler();
            gatewayHandler.doServices();*/

            GatewayHandler gatewayHandler = gatewayHandlerManage.getFirstGatewayHandler();
            gatewayHandler.doServices();

        } catch (Exception e) {
            log.error("<权限不足，中间部分环节没有通过>");
            return "fail";
        }

        //业务代码 更新doService方法中某一个环节 ，没有过的情况就不会执行
        /**
         * 封装的方法
         * 1,方法上加上返回值 拦截器（多拦截器）true
         * 2，抛出异常
         */
        return "业务代码";
    }

}
